package com.pe.rimac;

import com.pe.rimac.util.RSTextWatcher;

import android.database.sqlite.SQLiteCursor;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.Spinner;

public class AseguradoActivity extends BaseActivity {
	
	private boolean finalizoCargaInicial;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.vs_asegurado);

		cargarListaAsegurado();
		
		llenarFormulario();
		
		cargarListeners();
	}

	private void cargarListeners() {
		final EditText domicilioEditText = (EditText) findViewById(R.id.txtDomicilio);
		domicilioEditText.addTextChangedListener(new RSTextWatcher(domicilioEditText, siniestro));
		
		final Spinner distritoSpinner = (Spinner) findViewById(R.id.cmbDistAseg);
		distritoSpinner.setOnItemSelectedListener(this);
		
		final EditText telefonoEditText = (EditText) findViewById(R.id.txtTelefono);
		telefonoEditText.addTextChangedListener(new RSTextWatcher(telefonoEditText, siniestro));
	}

	private void cargarListaAsegurado() {

		finalizoCargaInicial = false;
		
		final Spinner departamentoSpinner = (Spinner) findViewById(R.id.cmbDptoAseg);
	    departamentoSpinner.setOnItemSelectedListener(this);
	    
	    final Spinner provinciaSpinner = (Spinner) findViewById(R.id.cmbProvAseg);
	    provinciaSpinner.setOnItemSelectedListener(this);
	    
		cargarDepartamentos();

	}

	private void cargarDepartamentos() {
		cargarSpinner(R.id.cmbDptoAseg, "TBL_DEPARTAMENTOS", "COD_DEPA", "DDEPARTAMENTO");
	}
	
	private void cargarProvincias(String codDepa) {
		
		cargarSpinner(R.id.cmbProvAseg, "TBL_PROVINCIAS", "COD_PROV", "NOM_PROV", "WHERE COD_DEPA = ?", new String[]{codDepa});
		selectedSpinner(R.id.cmbProvAseg, siniestro.getAsegurado().getProv());
	}
	
	private void cargarDistritos(String codProv) 
	{	
		cargarSpinner(R.id.cmbDistAseg, "TBL_DISTRITOS", "Cod_Dist", "Nom_Dist", "WHERE Cod_Prov = ?", new String[]{codProv});
		selectedSpinner(R.id.cmbDistAseg, siniestro.getAsegurado().getDist());
		
		if(!finalizoCargaInicial)
		{
			finalizoCargaInicial = true;
		}
	}

	public void onItemSelected(AdapterView<?> parent, View view, int pos,
			long id) {

		SQLiteCursor item = (SQLiteCursor)parent.getItemAtPosition(pos);
		if (parent.getId() == R.id.cmbDptoAseg) {
			if(finalizoCargaInicial)
			{
				siniestro.getAsegurado().setDpto(item.getString(0));
			}
			cargarProvincias(item.getString(0));
		}
		else if (parent.getId() == R.id.cmbProvAseg) {
			if(finalizoCargaInicial)
			{
				siniestro.getAsegurado().setProv(item.getString(0));
			}
			cargarDistritos(item.getString(0));
		}
		else if (parent.getId() == R.id.cmbDistAseg) {
			siniestro.getAsegurado().setDist(item.getString(0));
		}
	}
	
	private void llenarFormulario() {
		setTextEditText(R.id.txtNombre, siniestro.getAsegurado().getNombre());
		setTextEditText(R.id.txtDomicilio, siniestro.getAsegurado().getDomicilio());
		selectedSpinner(R.id.cmbDptoAseg, siniestro.getAsegurado().getDpto());
		setTextEditText(R.id.txtTelefono, siniestro.getAsegurado().getTelefono());
	}
	
	@Override
	public void onNothingSelected(AdapterView<?> parent) {

	}

	@Override
	public void onClick(View v) {
		
	}

	@Override
	public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
		
	}

	

}
